package LeetCode;


/**
 * Desc:53. 最大子数组和
 * @author 豆包LU
 * @date 2023/4/11 14:02
 */
class MaxSubArray {
    public int maxSubArray(int[] nums) {
        int maxSum = nums[0];
        // 初始化最大和为第一个元素
        int currentSum = nums[0];
        // 初始化当前和为第一个元素
        for (int i = 1; i < nums.length; i++) {
            // 从第二个元素开始遍历数组
            // 判断当前和加上当前元素和当前元素的大小，取较大值作为新的当前和
            currentSum = Math.max(currentSum + nums[i], nums[i]);
            // 更新最大和，取当前最大和和当前和的较大值
            maxSum = Math.max(maxSum, currentSum);
        }

        return maxSum;
        // 返回最大和
    }
}

